package com.ce.pms.customer.service;

import java.util.List;

import com.ce.pms.customer.model.IndividualDO;
import com.ce.pms.customer.model.ParticipantDO;
import com.ce.pms.customer.vo.MemberVO;
import com.sitechasia.webx.core.support.Page;

/**
 * 功能描述:
 * <p>版权所有：中企动力
 * <p>未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author  胡煦
 * Created on  2008-05-26
 */

public interface IMemberService extends ICustomerService {
	/**
	 * 方法描述: 验证此客户在该房间是否已经存在相关角色
	 * @author 胡煦
	 * Create on:2008-12-9
	 * @param Long houseId, Long clientId
	 * @return void
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public void checkHasClientRHouse(Long houseId, Long clientId);
	/**
	 * 方法描述: 验证户主与成员在该房间内是否已经存在关系
	 * @author 胡煦
	 * Create on:2008-7-15
	 * @param
	 * @return
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public boolean checkMemberby2Id(Long ownerId, Long participantId, Long houseId);

	/**
	 * 方法描述: 根据客户和房屋删除家庭成员
	 * @author 胡煦
	 * Create on:2008-6-4
	 * @param id：户主ID
	 * @return
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public Long deleteMemberRel(Long ownerId, Long paticpantId,
			Long houseId);

	/**
	 * 方法描述: 修改业主|租户|企业成员
	 * @author 胡煦
	 * Create on:2008-6-5
	 * @param memberVO
	 * @return IndividualDO
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */

	public IndividualDO editMember(MemberVO memberVO);

	/**
	 * 方法描述: 根据客户查找房屋
	 * @author 胡煦
	 * Create on:2008-6-4
	 * @param id：户主ID
	 * @return
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public List gethouseIdByClientId(Long clientId);

	/**
	 * 方法描述: 新增业主|租户|企业成员
	 * @author 胡煦
	 * Create on:2008-6-5
	 * @param memberVO
	 * @return IndividualDO
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public IndividualDO addMember(MemberVO memberVO);

	/**
	 * 方法描述: 根据户主ID List找到其相应家庭成员
	 * @author 胡煦
	 * Create on:2008-6-4
	 * @param id：户主ID
	 * @return 返回当前页的查询结果
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */

	public List findMemberbyListId(List<Long> lid, List<Long> hid);


	/**
	 * 方法描述:获得成员所有关系类型
	 * @author 胡煦
	 * Create on:2008-6-11
	 * @param
	 * @return
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public List getReletionType();

	/**
	 * 方法描述:根据客户ID获取客户姓名
	 *
	 * @author 胡煦 Create on:2008-6-13
	 * @param nameStr：
	 * @return Edit author: Edit on: 修改原因：
	 */
	public List<ParticipantDO> getCustomerNameby(List<Long> customerIdList);

	/**
	 * 方法描述: 删除选中的家庭成员
	 * @author 胡煦
	 * Create on:2008-6-4
	 * @param id：户主ID
	 * @return
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
//	public Long deleteMemberRelation(Long ownerId, Long participant_id,
//			Long relationId, Long houseId);

}
